package org.linlinjava.litemall.db.domain;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

public class ProjectFileExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectFileExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public ProjectFileExample orderBy(String orderByClause) {
        this.setOrderByClause(orderByClause);
        return this;
    }

    public ProjectFileExample orderBy(String ... orderByClauses) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < orderByClauses.length; i++) {
            sb.append(orderByClauses[i]);
            if (i < orderByClauses.length - 1) {
                sb.append(" , ");
            }
        }
        this.setOrderByClause(sb.toString());
        return this;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria(this);
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public static Criteria newAndCreateCriteria() {
        ProjectFileExample example = new ProjectFileExample();
        return example.createCriteria();
    }

    public ProjectFileExample when(boolean condition, IExampleWhen then) {
        if (condition) {
            then.example(this);
        }
        return this;
    }

    public ProjectFileExample when(boolean condition, IExampleWhen then, IExampleWhen otherwise) {
        if (condition) {
            then.example(this);
        } else {
            otherwise.example(this);
        }
        return this;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andFileIdIsNull() {
            addCriterion("file_id is null");
            return (Criteria) this;
        }

        public Criteria andFileIdIsNotNull() {
            addCriterion("file_id is not null");
            return (Criteria) this;
        }

        public Criteria andFileIdEqualTo(String value) {
            addCriterion("file_id =", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdNotEqualTo(String value) {
            addCriterion("file_id <>", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdGreaterThan(String value) {
            addCriterion("file_id >", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdGreaterThanOrEqualTo(String value) {
            addCriterion("file_id >=", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdLessThan(String value) {
            addCriterion("file_id <", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdLessThanOrEqualTo(String value) {
            addCriterion("file_id <=", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_id <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileIdLike(String value) {
            addCriterion("file_id like", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdNotLike(String value) {
            addCriterion("file_id not like", value, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdIn(List<String> values) {
            addCriterion("file_id in", values, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdNotIn(List<String> values) {
            addCriterion("file_id not in", values, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdBetween(String value1, String value2) {
            addCriterion("file_id between", value1, value2, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileIdNotBetween(String value1, String value2) {
            addCriterion("file_id not between", value1, value2, "fileId");
            return (Criteria) this;
        }

        public Criteria andFileNameIsNull() {
            addCriterion("file_name is null");
            return (Criteria) this;
        }

        public Criteria andFileNameIsNotNull() {
            addCriterion("file_name is not null");
            return (Criteria) this;
        }

        public Criteria andFileNameEqualTo(String value) {
            addCriterion("file_name =", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameNotEqualTo(String value) {
            addCriterion("file_name <>", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThan(String value) {
            addCriterion("file_name >", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThanOrEqualTo(String value) {
            addCriterion("file_name >=", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameLessThan(String value) {
            addCriterion("file_name <", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameLessThanOrEqualTo(String value) {
            addCriterion("file_name <=", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_name <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileNameLike(String value) {
            addCriterion("file_name like", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotLike(String value) {
            addCriterion("file_name not like", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameIn(List<String> values) {
            addCriterion("file_name in", values, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotIn(List<String> values) {
            addCriterion("file_name not in", values, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameBetween(String value1, String value2) {
            addCriterion("file_name between", value1, value2, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotBetween(String value1, String value2) {
            addCriterion("file_name not between", value1, value2, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameIsNull() {
            addCriterion("file_save_name is null");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameIsNotNull() {
            addCriterion("file_save_name is not null");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameEqualTo(String value) {
            addCriterion("file_save_name =", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameNotEqualTo(String value) {
            addCriterion("file_save_name <>", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameGreaterThan(String value) {
            addCriterion("file_save_name >", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameGreaterThanOrEqualTo(String value) {
            addCriterion("file_save_name >=", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameLessThan(String value) {
            addCriterion("file_save_name <", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameLessThanOrEqualTo(String value) {
            addCriterion("file_save_name <=", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_save_name <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileSaveNameLike(String value) {
            addCriterion("file_save_name like", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameNotLike(String value) {
            addCriterion("file_save_name not like", value, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameIn(List<String> values) {
            addCriterion("file_save_name in", values, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameNotIn(List<String> values) {
            addCriterion("file_save_name not in", values, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameBetween(String value1, String value2) {
            addCriterion("file_save_name between", value1, value2, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileSaveNameNotBetween(String value1, String value2) {
            addCriterion("file_save_name not between", value1, value2, "fileSaveName");
            return (Criteria) this;
        }

        public Criteria andFileUrlIsNull() {
            addCriterion("file_url is null");
            return (Criteria) this;
        }

        public Criteria andFileUrlIsNotNull() {
            addCriterion("file_url is not null");
            return (Criteria) this;
        }

        public Criteria andFileUrlEqualTo(String value) {
            addCriterion("file_url =", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlNotEqualTo(String value) {
            addCriterion("file_url <>", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThan(String value) {
            addCriterion("file_url >", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThanOrEqualTo(String value) {
            addCriterion("file_url >=", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThan(String value) {
            addCriterion("file_url <", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThanOrEqualTo(String value) {
            addCriterion("file_url <=", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_url <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileUrlLike(String value) {
            addCriterion("file_url like", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotLike(String value) {
            addCriterion("file_url not like", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlIn(List<String> values) {
            addCriterion("file_url in", values, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotIn(List<String> values) {
            addCriterion("file_url not in", values, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlBetween(String value1, String value2) {
            addCriterion("file_url between", value1, value2, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotBetween(String value1, String value2) {
            addCriterion("file_url not between", value1, value2, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileTypeIsNull() {
            addCriterion("file_type is null");
            return (Criteria) this;
        }

        public Criteria andFileTypeIsNotNull() {
            addCriterion("file_type is not null");
            return (Criteria) this;
        }

        public Criteria andFileTypeEqualTo(String value) {
            addCriterion("file_type =", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeNotEqualTo(String value) {
            addCriterion("file_type <>", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeGreaterThan(String value) {
            addCriterion("file_type >", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeGreaterThanOrEqualTo(String value) {
            addCriterion("file_type >=", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeLessThan(String value) {
            addCriterion("file_type <", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeLessThanOrEqualTo(String value) {
            addCriterion("file_type <=", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_type <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileTypeLike(String value) {
            addCriterion("file_type like", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeNotLike(String value) {
            addCriterion("file_type not like", value, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeIn(List<String> values) {
            addCriterion("file_type in", values, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeNotIn(List<String> values) {
            addCriterion("file_type not in", values, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeBetween(String value1, String value2) {
            addCriterion("file_type between", value1, value2, "fileType");
            return (Criteria) this;
        }

        public Criteria andFileTypeNotBetween(String value1, String value2) {
            addCriterion("file_type not between", value1, value2, "fileType");
            return (Criteria) this;
        }

        public Criteria andProjectIdIsNull() {
            addCriterion("project_id is null");
            return (Criteria) this;
        }

        public Criteria andProjectIdIsNotNull() {
            addCriterion("project_id is not null");
            return (Criteria) this;
        }

        public Criteria andProjectIdEqualTo(String value) {
            addCriterion("project_id =", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdNotEqualTo(String value) {
            addCriterion("project_id <>", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdGreaterThan(String value) {
            addCriterion("project_id >", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdGreaterThanOrEqualTo(String value) {
            addCriterion("project_id >=", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdLessThan(String value) {
            addCriterion("project_id <", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdLessThanOrEqualTo(String value) {
            addCriterion("project_id <=", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("project_id <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andProjectIdLike(String value) {
            addCriterion("project_id like", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdNotLike(String value) {
            addCriterion("project_id not like", value, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdIn(List<String> values) {
            addCriterion("project_id in", values, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdNotIn(List<String> values) {
            addCriterion("project_id not in", values, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdBetween(String value1, String value2) {
            addCriterion("project_id between", value1, value2, "projectId");
            return (Criteria) this;
        }

        public Criteria andProjectIdNotBetween(String value1, String value2) {
            addCriterion("project_id not between", value1, value2, "projectId");
            return (Criteria) this;
        }

        public Criteria andLicensorIsNull() {
            addCriterion("licensor is null");
            return (Criteria) this;
        }

        public Criteria andLicensorIsNotNull() {
            addCriterion("licensor is not null");
            return (Criteria) this;
        }

        public Criteria andLicensorEqualTo(String value) {
            addCriterion("licensor =", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorNotEqualTo(String value) {
            addCriterion("licensor <>", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorGreaterThan(String value) {
            addCriterion("licensor >", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorGreaterThanOrEqualTo(String value) {
            addCriterion("licensor >=", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorLessThan(String value) {
            addCriterion("licensor <", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorLessThanOrEqualTo(String value) {
            addCriterion("licensor <=", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("licensor <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andLicensorLike(String value) {
            addCriterion("licensor like", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorNotLike(String value) {
            addCriterion("licensor not like", value, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorIn(List<String> values) {
            addCriterion("licensor in", values, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorNotIn(List<String> values) {
            addCriterion("licensor not in", values, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorBetween(String value1, String value2) {
            addCriterion("licensor between", value1, value2, "licensor");
            return (Criteria) this;
        }

        public Criteria andLicensorNotBetween(String value1, String value2) {
            addCriterion("licensor not between", value1, value2, "licensor");
            return (Criteria) this;
        }

        public Criteria andEditorIsNull() {
            addCriterion("editor is null");
            return (Criteria) this;
        }

        public Criteria andEditorIsNotNull() {
            addCriterion("editor is not null");
            return (Criteria) this;
        }

        public Criteria andEditorEqualTo(String value) {
            addCriterion("editor =", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorNotEqualTo(String value) {
            addCriterion("editor <>", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorGreaterThan(String value) {
            addCriterion("editor >", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorGreaterThanOrEqualTo(String value) {
            addCriterion("editor >=", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorLessThan(String value) {
            addCriterion("editor <", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorLessThanOrEqualTo(String value) {
            addCriterion("editor <=", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("editor <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andEditorLike(String value) {
            addCriterion("editor like", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorNotLike(String value) {
            addCriterion("editor not like", value, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorIn(List<String> values) {
            addCriterion("editor in", values, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorNotIn(List<String> values) {
            addCriterion("editor not in", values, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorBetween(String value1, String value2) {
            addCriterion("editor between", value1, value2, "editor");
            return (Criteria) this;
        }

        public Criteria andEditorNotBetween(String value1, String value2) {
            addCriterion("editor not between", value1, value2, "editor");
            return (Criteria) this;
        }

        public Criteria andFileRemarkIsNull() {
            addCriterion("file_remark is null");
            return (Criteria) this;
        }

        public Criteria andFileRemarkIsNotNull() {
            addCriterion("file_remark is not null");
            return (Criteria) this;
        }

        public Criteria andFileRemarkEqualTo(String value) {
            addCriterion("file_remark =", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkNotEqualTo(String value) {
            addCriterion("file_remark <>", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkGreaterThan(String value) {
            addCriterion("file_remark >", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("file_remark >=", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkLessThan(String value) {
            addCriterion("file_remark <", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkLessThanOrEqualTo(String value) {
            addCriterion("file_remark <=", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("file_remark <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andFileRemarkLike(String value) {
            addCriterion("file_remark like", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkNotLike(String value) {
            addCriterion("file_remark not like", value, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkIn(List<String> values) {
            addCriterion("file_remark in", values, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkNotIn(List<String> values) {
            addCriterion("file_remark not in", values, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkBetween(String value1, String value2) {
            addCriterion("file_remark between", value1, value2, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andFileRemarkNotBetween(String value1, String value2) {
            addCriterion("file_remark not between", value1, value2, "fileRemark");
            return (Criteria) this;
        }

        public Criteria andAdminNameIsNull() {
            addCriterion("admin_name is null");
            return (Criteria) this;
        }

        public Criteria andAdminNameIsNotNull() {
            addCriterion("admin_name is not null");
            return (Criteria) this;
        }

        public Criteria andAdminNameEqualTo(String value) {
            addCriterion("admin_name =", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameNotEqualTo(String value) {
            addCriterion("admin_name <>", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameGreaterThan(String value) {
            addCriterion("admin_name >", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameGreaterThanOrEqualTo(String value) {
            addCriterion("admin_name >=", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameLessThan(String value) {
            addCriterion("admin_name <", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameLessThanOrEqualTo(String value) {
            addCriterion("admin_name <=", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("admin_name <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andAdminNameLike(String value) {
            addCriterion("admin_name like", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameNotLike(String value) {
            addCriterion("admin_name not like", value, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameIn(List<String> values) {
            addCriterion("admin_name in", values, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameNotIn(List<String> values) {
            addCriterion("admin_name not in", values, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameBetween(String value1, String value2) {
            addCriterion("admin_name between", value1, value2, "adminName");
            return (Criteria) this;
        }

        public Criteria andAdminNameNotBetween(String value1, String value2) {
            addCriterion("admin_name not between", value1, value2, "adminName");
            return (Criteria) this;
        }

        public Criteria andInsertTimeIsNull() {
            addCriterion("insert_time is null");
            return (Criteria) this;
        }

        public Criteria andInsertTimeIsNotNull() {
            addCriterion("insert_time is not null");
            return (Criteria) this;
        }

        public Criteria andInsertTimeEqualTo(LocalDateTime value) {
            addCriterion("insert_time =", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeNotEqualTo(LocalDateTime value) {
            addCriterion("insert_time <>", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeGreaterThan(LocalDateTime value) {
            addCriterion("insert_time >", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("insert_time >=", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeLessThan(LocalDateTime value) {
            addCriterion("insert_time <", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("insert_time <=", value, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("insert_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andInsertTimeIn(List<LocalDateTime> values) {
            addCriterion("insert_time in", values, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeNotIn(List<LocalDateTime> values) {
            addCriterion("insert_time not in", values, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("insert_time between", value1, value2, "insertTime");
            return (Criteria) this;
        }

        public Criteria andInsertTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("insert_time not between", value1, value2, "insertTime");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameIsNull() {
            addCriterion("update_admin_name is null");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameIsNotNull() {
            addCriterion("update_admin_name is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameEqualTo(String value) {
            addCriterion("update_admin_name =", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameNotEqualTo(String value) {
            addCriterion("update_admin_name <>", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameGreaterThan(String value) {
            addCriterion("update_admin_name >", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameGreaterThanOrEqualTo(String value) {
            addCriterion("update_admin_name >=", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameLessThan(String value) {
            addCriterion("update_admin_name <", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameLessThanOrEqualTo(String value) {
            addCriterion("update_admin_name <=", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_admin_name <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameLike(String value) {
            addCriterion("update_admin_name like", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameNotLike(String value) {
            addCriterion("update_admin_name not like", value, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameIn(List<String> values) {
            addCriterion("update_admin_name in", values, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameNotIn(List<String> values) {
            addCriterion("update_admin_name not in", values, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameBetween(String value1, String value2) {
            addCriterion("update_admin_name between", value1, value2, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateAdminNameNotBetween(String value1, String value2) {
            addCriterion("update_admin_name not between", value1, value2, "updateAdminName");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(LocalDateTime value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time = ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(LocalDateTime value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time <> ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(LocalDateTime value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time > ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time >= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(LocalDateTime value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time < ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualToColumn(ProjectFile.Column column) {
            addCriterion(new StringBuilder("update_time <= ").append(column.getEscapedColumnName()).toString());
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<LocalDateTime> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<LocalDateTime> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        private ProjectFileExample example;

        protected Criteria(ProjectFileExample example) {
            super();
            this.example = example;
        }

        public ProjectFileExample example() {
            return this.example;
        }

        @Deprecated
        public Criteria andIf(boolean ifAdd, ICriteriaAdd add) {
            if (ifAdd) {
                add.add(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then) {
            if (condition) {
                then.criteria(this);
            }
            return this;
        }

        public Criteria when(boolean condition, ICriteriaWhen then, ICriteriaWhen otherwise) {
            if (condition) {
                then.criteria(this);
            } else {
                otherwise.criteria(this);
            }
            return this;
        }

        @Deprecated
        public interface ICriteriaAdd {
            Criteria add(Criteria add);
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }

    public interface ICriteriaWhen {
        void criteria(Criteria criteria);
    }

    public interface IExampleWhen {
        void example(org.linlinjava.litemall.db.domain.ProjectFileExample example);
    }
}